Meeting rooms (meeting time intervals)¶
Time: O(NlogN); Space: O(N)
Given an array of meeting time intervals consisting of start and end times [[s1,e1],[s2,e2],…] (si < ei), determine if a person could attend all meetings.
Example 1:
Input: intervals: [0, 30], [5, 10], [15, 20]
Output: False
Example 2:
Input: intervals: [7, 10], [2, 4]
Output: True
[1]:
class Interval(object):
"""
Definition for an interval
"""
def __init__(self, start=0, end=0):
self.start = start
self.end = end
[2]:
class Solution1(object):
def canAttendMeetings(self, intervals):
'''
:type intervals: [Interval[]]
:rtype: bool
'''
intervals.sort(key=lambda x: x.start)
for i in range(1, len(intervals)):
if intervals[i].start < intervals[i-1].end:
return False
return True
[3]:
s = Solution1()
a1 = Interval(0, 30)
a2 = Interval(5, 10)
a3 = Interval(15, 20)
assert s.canAttendMeetings([a1, a2, a3]) == False
a1 = Interval(7, 10)
a2 = Interval(2, 4)
assert s.canAttendMeetings([a1, a2]) == True